package com.fafu.ioc;

import com.fafu.ioc.component.UserComponent;
import com.fafu.ioc.controller.UserController;
import com.fafu.ioc.modal.UserInfo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan("com.fafu.ioc")
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		ApplicationContext context = SpringApplication.run(DemoApplication.class, args);
//		UserController bean = context.getBean(UserController.class);
//		bean.say();
//
//
//		UserController bean1 = (UserController) context.getBean("userController");
//		bean1.say();
//
//		UserController bean2 = context.getBean("userController",UserController.class);
//		bean2.say();
//		//单例模式的体现
//		//拿到的对象都是一样的
//		System.out.println(bean);
//		System.out.println(bean1);
//		System.out.println(bean2);
//
//		UserRepository bean3 = context.getBean(UserRepository.class);
//		UserService bean4 = context.getBean(UserService.class);
//		UserConfig bean5 = context.getBean(UserConfig.class);
//		bean3.say();
//		bean4.say();
//		bean5.say();
//
////		UserInfo bean6 = context.getBean(UserInfo.class);
////		System.out.println(bean6);
//		UserInfo bean7 = (UserInfo) context.getBean("豆英");
//		System.out.println(bean7);
//		Object userInfo2 = context.getBean("userInfo2");
//		System.out.println(userInfo2);
		UserComponent bean1 = context.getBean(UserComponent.class);
		bean1.say();
	}

}
